package com.candoit.webapps.pricing.controllers;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import com.candoit.webapps.pricing.model.Medida;
import com.candoit.webapps.pricing.util.QueryUtil;

@ManagedBean(name = "medidaCtrl")
@SessionScoped
public class MedidaController extends AbstractController {
	
	private List<Medida> medidas;
	
	private Medida medidaSelected;
	
	public List<Medida> getMedidas() {
		medidas = QueryUtil.getInstance().getMedidas();
		return medidas;
	}

	public void setMedidas(List<Medida> medidas) {
		this.medidas = medidas;
	}

	public Medida getMedidaSelected() {
		if (medidaSelected == null){
			medidaSelected = new Medida();
		}
		return medidaSelected;
	}

	public void setMedidaSelected(Medida medidaSelected) {
		this.medidaSelected = medidaSelected;
	}

	
	public void saveMedida(){
		if (this.getMedidaSelected().getAlto() == null ){
			this.error = true;
			FacesContext.getCurrentInstance().addMessage("savemedidaform:alto", new FacesMessage(ALTO_EMPTY));
		}
		if (this.getMedidaSelected().getLargo() == null ){
			this.error = true;
			FacesContext.getCurrentInstance().addMessage("savemedidaform:largo", new FacesMessage(LARGO_EMPTY));
		}
		if (this.getMedidaSelected().getAncho() == null ){
			this.error = true;
			FacesContext.getCurrentInstance().addMessage("savemedidaform:ancho", new FacesMessage(ANCHO_EMPTY));
		}
		if (this.error){
			return;
		}
		
		this.save(medidaSelected);
		medidaSelected = null;
	}
	
	public void removeMedida(){
		this.remove(medidaSelected);
		medidaSelected = null;
	}
	
	public void clearData(){
		this.saveSuccess = false;
		this.deleteSuccess = false;
		this.medidaSelected = null;
	}

}
